#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>

#define FOR(i,a,n) for(int i=a;i<n;++i)
#define REP(i,n) FOR(i,0,n)

using namespace std;

int n,t;
double dp[3030],q[3030],p[3030];

int main()
{
    cin>>n>>t;
    REP(i,n) cin>>q[i],p[i]=1-q[i];
    dp[n]=0;
    for(int i=n-1;i>=0;--i)
    {
        double pre = p[i]*dp[i+1]+q[i]+t+1;
        double pSum=p[i];
        double inc=q[i];
        dp[i]=pre;
        for(int k=2;i+k<=n;k++)
        {
            pre=pre-pSum*dp[i+k-1]+1+pSum*q[i+k-1]*(dp[i+k-1]+1)+pSum*p[i+k-1]*dp[i+k]+inc;
            inc+=pSum*q[i+k-1];
            pSum*=p[i+k-1];
            dp[i]=min(dp[i],pre);
        }
        dp[i]/=(1-q[i]);
    }
    printf("%.8f\n",dp[0]);
	return 0;
}
